Redis からフォークした OSS の Valkey が Google Cloud からマネージドサービスで Memorystore for Valkey としてプレビューでリリースされました

Redis からフォークした OSS の Valkey が Google Cloud からマネージドサービスで Memorystore for Valkey としてプレビューでリリースされました

Redis のフォークである Valkey が Google Cloud でマネージドサービスとしてリリースされました。Memorystore for Valkey です。現時点ではプレビューですが Memorystore for Redis Cluster とほぼ同様の機能が利用できます。

ウィスキー、シガー、パイプをこよなく愛する大栗です。

OSS のインメモリデータベースである Valkey が Google Cloud でマネージドサービスとして提供が開始されました。

Google Cloud launches Memorystore for Valkey, a 100% open-source key-value service

Valkey

Valkey は OSS 版の Redis 7.2 からフォークされたインメモリ データベースです。

Redis Inc. は 2024 年 3 月 20 日に Redis 7.4 のライセンスを以前の BSD-3-Clause(3条項BSDライセンス)から Redis Source Available License 2.0 (RSALv2) と Server Side Public License(SSPLv1)のデュアルライセンスに変更すると発表しました。このライセンス変更を受けて、旧来のライセンスのバージョンから多数のフォークが行われました。その中の一つで AWS の Principal Software Engineer である Madelyn Olson 氏を中心に PlaceholderKV という仮の名称のプロジェクトが立ち上がりました。2024 年 3 月 28 日に Linux Foundation は Valkey という名称でコミュニティを立ち上げ、Amazon Web Services (AWS)、Google Cloud、Oracle、Ericsson、Snap Inc. など支援と共に推進していくことを発表しました。活発に開発されており 2024 年 4 月 16 日は早速 Valkey として最初の GA 版である Valkey 7.2.5 がリリースされました。

Memorystore for Valkey

Memorystore はフルマネージドのインメモリ Redis、Memcached サービスです。インメモリのサービスであるため、ミリ秒未満のデータアクセスやスケーラビリティ、高可用性を提供します。

Memorystore のエンジンは以下の 4 種が提供されています。

  • Redis
  • Redisl Cluster
  • Memcached
  • Valkey ←New Preview

今回 Memorystore for Valkey として提供されるのは Valkey 7.2 になっておりプレビューのステータスです。Memorystore for Valkey は Memorystore for Redis Cluster のすべての GA の機能を備えており、ほぼ同一のコード互換性のある Valkey Cluster を提供します。Memorystore for Redis Cluster と同様に Memorystore for Valkey はゼロダウンタイムのスケールイン/スケールアウト、RDB や AOF の永続性、最大 14.5 TB のインスタンス、シングルゾーンとマルチゾーンクラスタなど、様々な機能を提供します。

料金

料金は基本的に Memorystore for Redis Cluster と同様の料金となっています。

東京リージョンでのインスタンスの料金は以下の様になっています。プロビジョニングされたシャードとレプリカノードの合計のインスタンスに対して料金が発生します。

ノードタイプ ノードあたりの容量 料金(ノードあたり1時間あたりの料金)
shared-core-nano 1.4 GB $0.0408
standard-small 6.5 GB $0.183
highmem-medium 13 GB $0.247
highmem-xlarge 58 GB $1.102

2024 年 11 月 15 日までは請求されませんが、AOF 永続性の料金もあります。東京リージョンでは以下のようになっています。Redis Cluster 版では AOF の料金について現時点で情報がありませんが、同様に 2024 年 11 月 15 日以降に請求されるかもしれないので注意が必要だと思います。

料金(1 GB あたり 1 時間あたりの料金)
0.00070367ドル

やってみる

実際に Memorystore for Valkey を起動してみます。

Memorystore for Valkey を起動する

Cloud Console 上部の検索窓でValkeyと入力します。Memorystore for Valkeyが出てくるのでクリックします。メニューから [Memorystore] - [Valkey] でも出てきます。

スクリーンショット 2024-09-03 12.05.23のコピー

初めて Memorystore for Valkey にアクセスする場合は API を有効にする必要があるので有効にするをクリックします。よく見ると Memorystore for Valkey のサービス名がmemorystore.googleapis.comになっていることが分かります。

スクリーンショット 2024-09-03 12.05.52

VALKEYタブでインスタンスを作成をクリックします。

スクリーンショット 2024-09-03 12.07.02のコピー

インスタンスの内容を設定します。

項目 設定値 備考
インスタンス ID (任意)
Region asia-northeast1 ここでは東京を選択
ノートタイプ highmem-medium 必要なデータ量などで選択

スクリーンショット 2024-09-03 12.08.23のコピー

シャード数とレプリカ数を設定します。シャード数によりスループットとメモリの総量が設定されます。レプリカ数でプライマリ VM の個数が変わり可用性が向上します。

スクリーンショット 2024-09-03 16.55.20のコピー

接続するネットワークを選択します。サービス接続ポリシーを設定していない場合には、それも設定します。

スクリーンショット 2024-09-03 12.09.31のコピー

サービス接続ポリシーを設定します。

スクリーンショット 2024-09-03 12.10.22のコピー

セキュリティとデータ永続性戦略を設定してインスタンスの作成をクリックします。データ永続性戦略でAppend Only File (AOF)を選択する場合には、AOF Fsync モードを以下の3個から選択します。

  • 書き込みごと(fsync: 常時)
  • 1 秒ごと(fsync: 毎秒)
  • OS デフォルト(fsync: なし)

スクリーンショット 2024-09-03 12.11.30のコピー

しばらくすると起動します。

スクリーンショット 2024-09-03 17.38.09

アクセスする

今回はクライアントとして、Compute Engine 上の Rocky Linux release 8.10 で redis-cli でアクセスしました。

まずは Valkey の情報を確認してみます。

$ redis-cli -h 192.0.2.1 INFO Server
# Server
redis_version:7.2.4
server_name:valkey
valkey_version:7.2.6
redis_git_sha1:00000000
redis_git_dirty:0
redis_build_id:60e7185a88add125
redis_mode:cluster
os:Linux 5.15.120+ x86_64
arch_bits:64
monotonic_clock:POSIX clock_gettime
multiplexing_api:epoll
atomicvar_api:c11-builtin
gcc_version:12.2.0
process_id:1
process_supervised:no
run_id:4e42c8ee2950c528f2e2cb6688365f30dc16471e
tcp_port:6379
server_time_usec:1725428708465566
uptime_in_seconds:78095
uptime_in_days:0
hz:10
configured_hz:10
lru_clock:14152676
executable:/data/valkey-server
config_file:/usr/local/etc/memorystore/valkey.conf
io_threads_active:0
listener0:name=tcp,bind=*,bind=-::*,port=6379

redis_versionは OSS ライセンスの最終バージョンである7.2.4 になっています。またserver_namevalkeyになっています。Redis と異なる項目としてvalkey_version7.2.6になっています。

値を入れて、それを確認してみます。Memorystore for Valkey はクラスタモードなので-cオプションを付けてredis-cliを実行します。

$ redis-cli -h 192.0.2.1 -c
192.0.2.1:6379> SET key-1 "Value 1"
OK
192.0.2.1:6379> GET key-1
"Value 1"

値を上書きしてみます。

192.0.2.1:6379> GET key-1
"Value 1"
192.0.2.1:6379> SET key-1 "Value 1-1"
OK
192.0.2.1:6379> GET key-1
"Value 1-1"

既存のキーがある場合に上書きしないで、値を入れてみます。

192.0.2.1:6379> GET key-1
"Value 1-1"
192.0.2.1:6379> SETNX key-1 "Value 1-2"
(integer) 0
192.0.2.1:6379> GET key-1
"Value 1-1"
192.0.2.1:11002> SETNX key-2 "Value 2-1"
-> Redirected to slot [12422] located at 192.0.2.1:11004
(integer) 1
192.0.2.1:11004> GET key-2
"Value 2-1"

一般的な Redis Cluster と同様に使用できました。

さいごに

Redis が OSS ではなくなり、Memorystore などの Redis のマネージドサービスは Redis Cloud 以外の選択肢がなくなるかと危惧していました。Valkey のマネージドサービスにより、Redis 互換のマネージドサービスが Memorystore で継続されるため安心しています。

Redis® Cloud Cache and Vector Database

今後リリースされる予定の Valkey 8.0 ではパフォーマンスと信頼性が強化されます。特にパフォーマンス面では、I/O スレッドシステムが大幅に改善されてマルチコア環境で大幅にパフォーマンスが向上する模様です。GA の時期と Valkey 8.0 版の Memorystore に大きく期待しています。

Valkey 8.0: Delivering Enhanced Performance and Reliability

Share this article

facebook logohatena logotwitter logo

© Classmethod, Inc. All rights reserved.